Evaluating SFI for a CISC Architecture
نویسندگان
چکیده
Executing untrusted code while preserving security requires that the code be prevented from modifying memory or executing instructions except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces such a policy by rewriting the untrusted code at the instruction level. However, the original sandboxing technique of Wahbe et al. is applicable only to RISC architectures, and most other previous work is either insecure, or has been not described in enough detail to give confidence in its security properties. We present a new sandboxing technique that can be applied to a CISC architecture like the IA-32, and whose application can be checked at load-time to minimize the TCB. We describe an implementation which provides a robust security guarantee and has low runtime overheads (an average of 21% on the SPECint2000 benchmarks). We evaluate the utility of the technique by applying it to untrusted decompression modules in an archive tool, and its safety by constructing a machine-checked proof that any program approved by the verification algorithm will respect the desired safety property.
منابع مشابه
A Machine-Checked Safety Proof for a CISC-Compatible SFI Technique
Executing untrusted code while preserving security requires that the code be prevented from modifying memory or executing instructions except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces such a policy by rewriting code at the instruction level. In previous work, we developed a new SFI technique that is applicable to CISC architectures such as the Intel IA...
متن کاملEfficient, Verifiable Binary Sandboxing for a CISC Architecture
Executing untrusted code while preserving security requires enforcement of memory and control-flow safety policies: untrusted code must be prevented from modifying memory or executing code except as explicitly allowed. Software-based fault isolation (SFI) or “sandboxing” enforces those policies by rewriting the untrusted code at the level of individual instructions. However, the original sandbo...
متن کاملThe Effect of Instruction Padding on SFI Overhead
Software-based fault isolation (SFI) is a technique to isolate a potentially faulty or malicious software module from the rest of a system using instruction-level rewriting. SFI implementations on CISC architectures, including Google Native Client, use instruction padding to enforce an address layout invariant and restrict control flow. However this padding decreases code density and imposes ru...
متن کاملArchitecture for RISC Processor with CISC instructions
Microprocessor is a general purpose IC which follows the instructions given to it, and the instructions set for the microprocessor designed such a way that it can handle any type of computations [4] . Different type of architectures are available in the market like CISC, RISC, ARM SHARC etc. all of them have their own different approaches to perform computations. This Paper work which is RISC c...
متن کاملA Comparison of RISC and CISC Architectures
Both CISC and RISC architectures continue to be widely used. RISC processors are present in most embedded devices, while x86 is the most popular architecture for desktops. Since modern processors have to address both power consumption and performance, it is important to compare these architectures to support future project decisions. Keywords—RISC; CISC; comparison
متن کامل